package com.hanlin.backend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hanlin.backend.common.entity.HlAuthority;
import com.hanlin.backend.dto.AuthorityDto;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 权限表 服务类
 * </p>
 *
 * @author hl.yuan
 * @since 2021-01-06
 */
public interface HlAuthorityService extends IService<HlAuthority> {

    /**
     * 获取权限
     * @param userId
     * @param roleId
     * @return
     */
    List<AuthorityDto> getAuthorityList(Integer userId,Integer roleId);

    /**
     * 查询所有的权限
     * @return
     * @param showRoot 是否展示根属性
     */
    List<AuthorityDto> getAuthorityAll(boolean showRoot);

    /**
     * 获取userID的权限
     * @param userid
     * @return
     */
    List<AuthorityDto> getUserAuthority(Integer userid);

    /**
     * 保存权限
     * @param listAuthority 权限列表
     * @param userId 用户id
     * @param roleId 角色id
     */
    void saveAuthority(List<Map> listAuthority, Integer userId, Integer roleId);

    /**
     * 保存菜单
     * @param authority 菜单对象
     */
    void saveMenu(HlAuthority authority);

    /**
     * 删除菜单
     * @param id
     */
    void deleteMenu(Integer id);

    /**
     * 根据id获取菜单
     * @param id 菜单id
     */
    HlAuthority getMenu(Integer id);
}
